package com.bluebridgecup.BasicAlgorithms.API2;

import java.util.Scanner;
import java.util.Arrays;


public class 玩具 {
    public static void main(String[] args) {
        // 创建Scanner对象，用于从标准输入（控制台）读取用户输入的数据
        Scanner scan = new Scanner(System.in);

        // 读取一个整数n，n在后续会用于确定数组的长度和循环条件
        int n = scan.nextInt();

        // 定义一个长整型数组w，数组长度为2 * n + 1，索引从1开始使用
        long[] w = new long[2 * n + 1];

        // 循环从控制台读取2 * n个整数，并将其存储到数组w的索引1到2 * n的位置
        // 注意：数组索引从1开始，索引0位置未使用
        for (int i = 1; i < 2 * n + 1; i++) {
            // 读取一个整数并赋值给数组w的第i个位置
            w[i] = scan.nextInt();
        }

        // 对数组w中索引从1到2 * n的元素进行排序，使用Arrays类的sort方法
        // 这样可以将这部分元素按升序排列
        Arrays.sort(w, 1, 2 * n + 1);

        // 初始化一个长整型变量ans，用于存储最终的计算结果
        long ans = 0;

        // 定义两个指针l和r，l指向数组的起始位置（索引1），r指向数组的末尾位置（索引2 * n）
        int l = 1, r = 2 * n;

        // 当左指针l小于右指针r时，执行循环体
        while (l < r) {
            // 将数组w中l位置的元素和r位置的元素相乘，并累加到ans中
            ans += w[l] * w[r];
            // 左指针l向右移动一位
            l++;
            // 右指针r向左移动一位
            r--;
        }

        // 输出最终的计算结果ans到控制台
        System.out.println(ans);

        // 关闭Scanner对象，释放相关资源，避免资源泄漏
        scan.close();
    }
}
